package com.yoso.starter.mysql.util;

import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yoso.core.dto.PageRequest;


/**
 * 分页工具
 * @author shizejin
 * @date 2024/01/11 17:01
 */
public class PageUtil {

    /**
     * 构建分页查询参数
     * @param pageRequest 分页请求
     * @return {@link IPage }<{@link E }>
     * @author shizejin
     * @date 2024/01/04 15:14
     */
    public static <P extends PageRequest, E> IPage<E> buildPage(P pageRequest) {
        Integer page = pageRequest.getPage();
        Integer limit = pageRequest.getLimit();
        return buildPage(page, limit);
    }

    /**
     * 构建分页查询参数
     * @param page 页码
     * @param limit 每页条数
     * @return {@link IPage }<{@link E }>
     * @author shizejin
     * @date 2024/01/04 15:15
     */
    public static <E> IPage<E> buildPage(Integer page, Integer limit) {
        if (ObjectUtil.isNull(page) || ObjectUtil.isNull(limit)) {
            return new Page<>(1, Integer.MAX_VALUE);
        }
        return new Page<>(page, limit);
    }
}
